﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entidades.Negocio
{
    public class Mensaje
    {

        public int id { get; set; }
        public String estado { get; set; }
        public DateTime fechaEmitir { get; set; }
        public String sfechaEmitir { get; set; }
        public String mensaje { get; set; }
        public Boolean ciclico { get; set; }
        public Boolean domingo { get; set; }
        public Boolean lunes { get; set; }
        public Boolean martes { get; set; }
        public Boolean miercoles { get; set; }
        public Boolean jueves { get; set; }
        public Boolean viernes { get; set; }
        public Boolean sabado { get; set; }
        public Boolean intervalo { get; set; }
        public int intervaloHoras { get; set; }
        public int intervaloMinutos { get; set; }
        public int vecesRepetir { get; set; }
        public DateTime? fechaTermino { get; set; }
        public String sfechaTermino { get; set; }
        public string VCHUSUARIOCREACION { get; set; }
        public Nullable<System.DateTime> DTMFECHACREACION { get; set; }
        public string VCHUSUARIOMODIFICACION { get; set; }
        public Nullable<System.DateTime> DTMFECHAMODIFICACION { get; set; }

        public String diasEmision
        {
            get
            {
                return booleanToNroStr(domingo) + booleanToNroStr(lunes) + booleanToNroStr(martes) + booleanToNroStr(miercoles) +
                        booleanToNroStr(jueves) + booleanToNroStr(viernes) + booleanToNroStr(sabado);
            }
            set
            {
                this.domingo = nroStrToBoolean(value.Substring(0, 1));
                this.lunes = nroStrToBoolean(value.Substring(1, 1));
                this.martes = nroStrToBoolean(value.Substring(2, 1));
                this.miercoles = nroStrToBoolean(value.Substring(3, 1));
                this.jueves = nroStrToBoolean(value.Substring(4, 1));
                this.viernes = nroStrToBoolean(value.Substring(5, 1));
                this.sabado = nroStrToBoolean(value.Substring(6, 1));
            }
        }

        public String booleanToNroStr(Boolean est)
        {
            if (est)
            {
                return "1";
            }
            return "0";
        }

        public Boolean nroStrToBoolean(String est)
        {
            if (est == "1")
            {
                return true;
            }
            return false;
        }

        public Mensaje() { }

        public Mensaje(int cod, string msj, string emisiones, short esCiclico, string est, DateTime fechaInicio, DateTime? fechaFin,
                                 short tieneIntervalo, long horas, long minutos, long veces)
        {
            id = cod;
            mensaje = msj;
            diasEmision = emisiones;
            ciclico = nroStrToBoolean(esCiclico.ToString());
            estado = est;
            fechaEmitir = fechaInicio;
            fechaTermino = fechaFin;
            intervalo = nroStrToBoolean(tieneIntervalo.ToString());
            intervaloHoras = Convert.ToInt32(horas);
            intervaloMinutos = Convert.ToInt32(minutos);
            vecesRepetir = Convert.ToInt32(veces);
        }
    }
}
